//#include<bits/stdc++.h>
//using namespace std;
//const int N = 2e9;
//const long long NN = 2e18;
////int a[N];
//void solve()
//{
//	long long n;
//	cin >> n;
//	long long i;
//	//for (i = 1; i <= n /i; i++);
//	cout << (int)sqrt(n) << endl;;
//}
//int main()
//{
//	int T;
//	cin >> T;
//	while (T--) {
//		solve();
//	}
//	return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//const int N = 1e6 + 10;
//const long long NN = 1000000007;
//long long a[N];
//void solve()
//{
//	int n;
//	cin >> n;
//	a[1] = 1, a[2] = 2, a[3] = 4;
//	for (int i = 4; i <= n; i++)
//		a[i] = (a[i - 1] + a[i - 2] + a[i - 3]) % NN;
//	cout << a[n] % NN << endl;
//}
//int main()
//{
//
//	solve();
//	return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//const int N = 1e5 + 10;
//long long x[N];
//long long cha[N];
//int main()
//{
//    int n;
//    cin >> n;
//    for (int i = 1; i <= n; i++)cin >> x[i];
//    cha[1] = x[1];
//    for (int i = 2; i <= n; i++)cha[i] = x[i] - x[i - 1];
//    int q;
//    cin >> q;
//    while (q--) {
//        int a = 0, b = 0, c = 0, d = 0;
//        cin >> a;
//        if (a == 1) {
//            cin >> b >> c >> d;
//            cha[b] += d;
//            cha[c + 1] -= d;
//        }
//        else
//        {
//            cin >> b;
//            long long sum = 0;
//            for (int i = 1; i <= b; i++)sum += cha[i];
//            cout << sum << endl;
//        }
//    }
//    return 0;
//}
//#include<bits/stdc++.h>
//using namespace std;
//const int N = 1e5 + 10;
//long long x[N];
//long long cha[N];
//bool is(int x) {
//    for (int i = 2; i <= x / i; i++)
//        if (x % i == 0)
//            return 0;
//    return 1;
//}
//vector<int>v;
//void solve() {
//    int n;
//    cin >> n;
//    if (n < 7 || n == 9)
//        cout << -1 << endl;
//    else {
//        //         if(is(n-4))
//        //             cout<<2<<' '<<2<<' '<<n-4<<endl;
//        //         else if(is(n-5))
//        //             cout<<2<<' '<<3<<n-5<<endl;
//        //         else //if(is(n-6))
//        //             cout<<3<<' '<<3<<' '<<n-6<<endl;
//        int x1 = v[0], x2 = v[0];
//        int i = 0, j = 0;
//        for (int i = 0;i<v.size()&& v[i] * 3 <= n; i++)
//            for (int j = i; j<v.size()&&v[j] * 2 <= n; j++)
//                if (is(n - v[i] - v[j]))
//                {
//                    cout << v[i] << ' ' << v[j] << ' ' << n - v[i] - v[j] << endl;
//                    return ;
//                }
//    }
//    cout << -1 << endl;
//}
//bool IS[50000] = { 0 };
//int main()
//{
//    for (int i = 2; i <= 50000; i++) {
//        if (IS[i] == 0)
//        {
//            IS[i] = 1;
//            v.push_back(i);
//        }
//        for (int j = 0; v[j] <= 50000 / i; j++)
//        {
//            IS[i * v[j]] = 1;
//            if (i % v[j] == 0)break;
//        }
//    }
//    int n;
//    cin >> n;
//    while (n--) {
//        solve();
//    }
//    return 0;
//}
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n;
    vector<int>v(n + 1);
    for (int i = 1; i <= n; i++)cin >> v[i];
    long long sum = 0;
    int L = 0, R = 0;
    cin >> L >> R;
    sort(v.begin() + 1, v.end());
    int l = 1, r = n;
    while (v[l]<L && v[r]>R) {
        int Min = 0;
        Min = min(L - v[l], v[r] - R);
        sum += Min;
       
       
        if (Min == L - v[l]) v[l++] += Min;
        else v[l] += Min;
        if (Min == v[r] - R)  v[r--] -= Min;
        else v[r] == Min;
    }
        if (v[l] >= L) {
            l = 1;
            while (v[l]<R && v[r]>R) {
                int Min = (R - v[l], v[r] - R);
                v[l] += Min;
                v[r] -= Min;
                if (Min == R - v[l])l++;
                if (Min == v[r] - R)r--;
                sum += Min;
            }
        }
        else if (v[R] <= R) {
            r = n;
            while (v[l]<L && v[r]>L) {
                int Min = (L - v[l], v[r] - L);
                v[l] += Min;
                v[r] -= Min;
                if (Min == L - v[l])l++;
                if (Min == v[r] - L)r--;
                sum += Min;
            }
        }
        if (v[l] >= L && v[r] <= R)
            cout << sum << endl;
        else
            cout << -1;
}